﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace _01委托概念
{
    public delegate string DelString(string str);
    class Program
    {
		//第二次 2018年9月25日22:54:57
        //第一次 2018年9月25日22:31:15 
        static void Main(string[] args)
        {
            string[] names = { "asasasasasdf", "gdfdrerfdcgd", "dffebbvbnbjgh" };
            //转大写,转小写,双引号

            //把函数直接赋值给一个委托
            //DelString del = ProToUpper;// new DelString(ProToUpper);

            //ProString(names, ProToUpper);

            //ProString(names, delegate (string str) { return str.ToUpper(); });//匿名函数

            ProString(names, (str) => { return str.ToUpper(); });//LAMADA表达式


            foreach (var item in names)
            {
                Console.WriteLine(item);
            }
            Console.ReadKey();

        }

        static void ProString(string[] names1,DelString del)
        {
            for (int i = 0; i < names1.Length; i++)
            {
                names1[i] = del(names1[i]);
            }
        }

        static string ProToUpper(string str)
        {
            return str.ToUpper();
        }
        static string ProToLower(string str)
        {
            return str.ToLower();
        }
    }
}
